Mass storage devices (such as FLASH memory that includes SD and MMC type mass storage devices) have increased greatly in both storage capacity and in the capabilities (i.e., processing resources) of associated mass storage device controllers. This increase in available storage capacity has had a synergistic effect on the general availability of devices whose capabilities can depend greatly on available memory. Such devices include portable digital devices such as portable media players, interactive personal communication devices (cell phones, PDAs, etc.) and the like. In this way, a digital consumer's exposure to digital products that rely upon the storage capability of mass storage devices such as FLASH memory has greatly increased. Exposure that typically spans across multiple devices—connected or unconnected—or access modes—wired vs. wireless, fixed vs. mobile etc.—each having specific storage requirements. Unfortunately, however, as a result of this vast increase in available devices, a digital consumer's storage management can be fragmented with personal content spread across various locations, various devices, and managed in a ‘silo mode’ resulting in content not synchronized, backed-up etc. For example, a consumer can possess a cell phone, a PDA, a multimedia player, a tablet PC, each of which can have different manufacturers, used different operating systems, different storage protocols, etc.
A number of attempts at solving the problem of fragmented management of the digital consumer's digital data have been proposed. It should be noted, however, that a large proportion of legacy digital devices (particularly those that include FLASH type mass storage) are based upon a master/slave paradigm in that a host device (as master) is coupled by way of a legacy interface to a legacy slave device that typically takes the form of a logical block addressing (LBA) mass storage device. In particular, the master/slave paradigm dictates that the legacy mass storage device and its contents be fully managed by the host device (including a host device file system). In this way, the host device and legacy storage device are locked into a master/slave relationship imposed by the physical link connecting them in that it is the host device (and in some cases, but not all, the host file system) that initiates all transactions between the host device and the legacy mass storage device. Therefore, the master/slave paradigm between host device and legacy mass storage device whereby the host device manages the legacy mass storage device using various LBA commands, poses further constraints on any possible solution.
A proposed solution includes integrating a client agent on the host device. Typically, the client agent is application specific. For example, the client agent can enable back up of the portable memory device, or the client agent can enable “content push” from a server computer to the portable memory device. The client agent can also provide a translation layer into LBA commands as well as provide a platform for processing by the host computer (thereby off-loading the most processor intensive operations from the portable memory device to the host computer). However, using a client agent on the host computer presents its own set of problems. One such problem is related to the heterogeneity of host operating systems, particularly in mobile platforms. This heterogeneity is made even worse in the case of a “closed” operating systems (such as Nucleus) as opposed to that of “open” operating systems such as Windows, Symbian, and the like. Furthermore, only those portable devices compatible with the agent integrated on the host computer can be used, again, limiting the potential market for these portable devices.
Therefore, a method, system, and apparatus that overcomes the structural limitations of legacy mass storage devices while still offering backward compatibility thereby providing richer cross platform storage services is desirable.